tabindex
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Das tabindex
globales Attribut ermöglicht es Entwicklern, HTML-Elemente fokussierbar zu machen, sie start- oder ausschließbar in der sequentiellen Fokussierung zu machen (normalerweise mit der Tab-Taste, daher der Name) und ihre relative Reihenfolge für die sequentielle Navigationsfokussierung zu bestimmen.
Probieren Sie es aus
<p>Click anywhere in this pane, then try tabbing through the elements.</p>
<label>First in tab order:<input type="text" /></label>
<div tabindex="0">Tabbable due to tabindex.</div>
<div>Not tabbable: no tabindex.</div>
<label>Third in tab order:<input type="text" /></label>
p {
font-style: italic;
font-weight: bold;
}
div,
label {
display: block;
letter-spacing: 0.5px;
margin-bottom: 1rem;
}
div:focus {
font-weight: bold;
}
Es akzeptiert einen ganzzahligen Wert, mit unterschiedlichen Ergebnissen, abhängig vom Wert der Zahl:
Hinweis:
Wenn ein HTML-Element gerendert wird und das tabindex
-Attribut mit einem beliebigen gültigen ganzzahligen Wert besitzt, kann das Element mit JavaScript fokussiert werden (indem die Methode focus()
aufgerufen wird) oder visuell durch Klicken mit der Maus. Der spezifische tabindex
-Wert steuert, ob das Element tabbable
ist (d.h. über die sequentielle Tastaturnavigation, normalerweise mit der Tab-Taste, erreichbar ist).
-
Ein negativer Wert (der genaue negative Wert spielt tatsächlich keine Rolle, normalerweise
tabindex="-1"
) bedeutet, dass das Element nicht über die sequentielle Tastaturnavigation erreichbar ist.Hinweis:
tabindex="-1"
kann nützlich für Elemente sein, die nicht direkt über die Tab-Taste angesteuert werden sollen, aber dennoch die Tastaturfokussierung auf sie gesetzt werden muss. Beispiele sind ein außerhalb des Bildschirms liegendes modales Fenster, das fokussiert werden soll, wenn es sichtbar wird, oder eine Formularfehlermeldung, die sofort fokussiert werden soll, wenn ein fehlerhaftes Formular übermittelt wird. -
tabindex="0"
bedeutet, dass das Element in der sequentiellen Tastaturnavigation fokussierbar sein soll, nach allen positiventabindex
-Werten. Die Fokussierungsreihenfolge dieser Elemente richtet sich nach ihrer Reihenfolge im Dokumentenquelltext. -
Ein positiver Wert bedeutet, dass das Element in der sequentiellen Tastaturnavigation fokussierbar sein soll, wobei seine Reihenfolge durch den Wert der Zahl definiert ist. Das heißt,
tabindex="4"
wird vortabindex="5"
undtabindex="0"
fokussiert, aber nachtabindex="3"
. Wenn mehrere Elemente denselben positiventabindex
-Wert teilen, folgt ihre relative Reihenfolge zueinander ihrer Position im Dokumentenquelltext. Der maximale Wert fürtabindex
ist 32767. -
Wenn das
tabindex
-Attribut ohne gesetzten Wert enthalten ist, wird durch den Benutzeragenten bestimmt, ob das Element fokussierbar ist.Warnung: Es wird empfohlen, ausschließlich
0
und-1
alstabindex
-Werte zu verwenden. Vermeiden Sietabindex
-Werte größer als0
und CSS-Eigenschaften, die die Reihenfolge fokussierbarer HTML-Elemente ändern können (Reihenfolge von Flex-Elementen). Dies erschwert es Menschen, die auf die Tastaturnavigation oder assistive Technologien angewiesen sind, die Seiteninhalte zu navigieren und zu bedienen. Stattdessen sollten Sie das Dokument in einer logischen Reihenfolge verfassen.
Einige fokussierbare HTML-Elemente haben standardmäßig einen tabindex
-Wert von 0
, der durch den Benutzeragenten gesetzt wird. Zu diesen Elementen gehören ein <a>
oder <area>
mit href
-Attribut, <button>
, <frame>
Veraltet
, <iframe>
, <input>
, <object>
, <select>
, <textarea>
, und SVG <a>
-Elemente oder ein <summary>
-Element, das eine Zusammenfassung für ein <details>
-Element bereitstellt. Entwickler sollten das tabindex
-Attribut nicht zu diesen Elementen hinzufügen, es sei denn, es ändert das Standardverhalten (zum Beispiel, indem ein negativer Wert hinzugefügt wird, wird das Element aus der Fokussierungsreihenfolge entfernt).
Warnung:
Das tabindex-Attribut darf nicht auf das <dialog>
-Element angewendet werden.
Barrierefreiheitsbedenken
Vermeiden Sie die Verwendung des tabindex
-Attributs in Verbindung mit nicht-interaktiven Inhalten, um etwas, das interaktiv sein soll, per Tastatureingabe fokussierbar zu machen. Ein Beispiel hierfür wäre die Verwendung eines <div>
-Elements zur Beschreibung eines Buttons anstelle des <button>
-Elements.
Interaktive Komponenten, die mithilfe nicht-interaktiver Elemente erstellt werden, sind nicht im Barrierefreiheitsbaum gelistet. Das verhindert, dass assistive Technologien diese Komponenten navigieren und manipulieren können. Die Inhalte sollten semantisch mithilfe interaktiver Elemente (<a>
, <button>
, <details>
, <input>
, <select>
, <textarea>
, usw.) beschrieben werden. Diese Elemente haben eine eingebaute Rolle und Zustände, die den Status für die Barrierefreiheit kommunizieren, die anderweitig von ARIA verwaltet werden müssten.
Spezifikationen
Specification |
---|
HTML # attr-tabindex |
Browser-Kompatibilität
Siehe auch
- Alle globalen Attribute
HTMLElement.tabIndex
, das dieses Attribut widerspiegelt- Barrierefreiheitsprobleme mit
tabindex
: siehe Don't Use Tabindex Greater than 0 von Adrian Roselli - Lesereihenfolge